#include<bits/stdc++.h>
#define sd(n) scanf("%d",&n) 
#define sld(n) scanf("%lld",&n)
#define pd(n) printf("%d", (n))
#define pld(n) printf("%lld", n)
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define fi first
#define se second
const int N=2e5;
#define INF 0x7fffffff
typedef long long int ll;
using namespace std;
//----------------------------------------------------------------------------//
int n,t;//原生状态是不会存在可自动消除的情况
void solve()
{
	sd(n);
	unordered_set<int> cnt;//去重
	for(int i=1;i<=n;i++)
	{
		sd(t);cnt.insert(t);
	}
	if(cnt.size()>=3) cout<<n<<'\n';
	if(cnt.size()==1) cout<<1<<'\n';
	if(cnt.size()==2) cout<<n/2+1<<'\n';

}
//ab ab ab ab ab ab ab//砍掉一个右爆两个aba砍b没aa,砍掉开头结尾,由于是环,所以头尾砍也会爆
//size==2的时候除了只剩两个元素的时候,其他看一个带走一个
int main()
{
	int T;
	sd(T);
	while (T--)
	{
		solve();
	}
	return 0;
}